package com.xjscrm.common.enums;

/**
 * Redis缓存Key
 */
public enum RedisCacheKeyEnum {

    WW_DEVICE_MOBLE("ww_device_moblie_%s", "企业微信移动端端缓存。参数：机器人唯一ID；有效期:永久"),

    WW_DEVICE_LAST_HEAT_BEAT_TIME("ww_device_last_heat_beat_time_%s", "企业微信移动端最后一次心跳。参数：机器人微信Id；有效期:永久"),

    /**
     * 租户编号
     */
    TENANT_CODE("tenant_%s", "存储租户编号，如：1000；参数：运营商ID；有效期:永久"),

    /**
     * 新客户方案每天添加上线
     */
    NEW_CUSTOMER_PLAN_AUTO_AUDIT_COUNT("new_customer_plan_auto_audit_count_%s", "存每天添加上线数，如：1000；参数：机器人wxid; 有效期: 离当天晚上24点的时间秒差值"),

    /**
     * 运营商基础配置-品牌设置(参数为_MerConfigKeyEnum.key_merId)
     * 运营商基础设置枚举{@link com.xjscrm.common.enums.MerConfigKeyEnum}
     */
    MER_BASE_CONFIG("mer_base_config_%s_%s", "运营商基础设置表中的品牌设置，有效期：永久"),

    /**
     * 运营商分发设置缓存
     */
    MER_CHAT_DISPATCH_CONF("mer_chat_dispatch_conf_%s", "运营商客服系统的分发设置. 有效期：永久"),
    /**
     * 员工回话聊天数限制
     */
    STAFF_CHAT_LIMIT_COUNT("scrm_staff_chat_limit_count_%s", "员工会话聊天数量限制. 有效期：永久"),
    /**
     * 员工回话实时聊天数
     */
    STAFF_CHAT_REAL_TIME_COUNT("scrm_staff_chat_real_time_count_%s", "员工回话实时聊天数. 有效期：永久"),
    /***
     *
     */
    STAFF_MQ_TAG_CACHE("scrm_staff_mq_tag_%s", "员工MQTAG缓存. 有效期：永久"),
    /**
     * 聊天会话队列
     */
    DEVICE_CHAT_SESSION_ORDER_QUEUE("scrm_device_chat_session_order_queue_%s", "聊天会话队列. 有效期：永久"),
    /**
     * 设备对应的员工缓存
     */
    DEVICE_STAFF_REL("scrm_device_staff_rel_%s", "设备对应的员工缓存. 有效期：永久"),

    WWGROUP_CONFIG("wwgroup_config_%s","客户群设置"),

     SYNC_GRUOP_DEVICE_GAP("sync_gruop_device_gap","同步客户群机器人间隔时间 5分钟"),

    SYNC_CUSTOMER_GAP("sync_customer_gap_%s","同步通讯录时间间隔 5分钟"),

    SYNC_CUSTOMER_MERBER_GAP("sync_customer_merber_gap_%s","同步客户群成员间隔，5分钟"),

    DISTINCT_CUSTOMER_BREAK_FALG("distinct_customer_break_falg_%s","去重客户取消检测标识"),


    DISTINCT_CUSTOMER_WHITCH_FALG("distinct_customer_whitch_falg_%s","去重客户哪次的标识"),
    /**
     * 智能回复语关键词回复同一个对象同一个问题触发回复语
     * 参数为 deviceId_智能回复id_会话id_发送者wxid_问题id
     */
    FAQREPLY_KEYWORD_TIGGER_SAME_QUESTION("faqreply_keyword_tigger_same_question_%s","智能回复语关键词回复同一个对象同一个问题触发回复语"),

    /**
     * 智能回复语关键词回复引导语缓存
     * 参数为 deviceId_会话id_发送者wxid
     */
    FAQREPLY_KEYWORD_GUIDE("faqreply_keyword_guide_%s","智能回复语关键词回复引导语缓存:1分钟"),


    DEL_REPEAT_CUSONM_NUMBER("del_repeat_cusonm_number_%s","去重删除的客户数"),

    DISTINCT_GROUP_MEMBER_BREAK_FALG("distinct_group_member_break_falg_%s","去重群成员取消检测标识"),


    DISTINCT_GROUP_MEMBER_WHICH_FALG("distinct_group_member_which_falg_%s","去重群成员哪次的标识"),

    /**
     * 群人数
     * 参数为 群wxid
     */
    GROUP_MEMBER_COUNT("ww_group_member_count_%s","群成员数量缓存标识"),

    DEL_REPEAT_GROUP_MEMBER_NUMBER("del_repeat_group_member_number_%s","去重删除的群成员数"),

    /**
     * 顺序拉群记录当前邀请群数据的进粉群列表下标（记录当前需要用的群下标）
     */
    GROUP_PULL_ORDER_INDEX("group_pull_order_index_%s_%s", "顺序拉群记录当前邀请群数据的进粉群列表下标(参数为邀请群数据唯一key+机器人唯一id)"),

    /**
     * 顺序拉群记录当前邀请群数据创建新群的群名序号（保存群名的序号）
     */
    GROUP_PULL_GROUP_NAME_START_NO("group_pull_group_name_start_no_%s_%s", "顺序拉群记录当前邀请群数据创建新群的群名序号（参数为邀请群数据唯一key+机器人唯一id)"),

    /**
     * 企业微信服务端接口token
     */
    QYWX_TOKEN("qywx_token_%s", "企业微信联盟token（参数为企业的entId，有效期7200秒)"),

    /**
     * 同步企业微信开放平台标签接口缓存
     */
    PUSH_OPEN_QYTAG("push_open_qytag_%s_%s", "同步开放平台企业标签（参数为运营商merId, 企业entId，有效期60秒)"),

    /**
     * 通过外部账号id更新会员标签列表缓存
     */
    PUSH_CUSTOMER_TAG_BY_EXTERNAL_USERID("push_customer_tag_by_external_userid_%s_%s", "通过外部账号id更新会员标签列表缓存（参数为deviceUniqueId, 客户表External_userid，有效期60秒)"),

    XJ_WW_APP_TOKEN("xj_ww_app_token_%s", "企业微信应用accessToken,（参数: corpSecret(来源于接口响应) 有效期7200秒)"),

    XJ_WW_SITE_TOKEN("xj_ww_site_token_%s", "企业微信应用accessToken,（参数: siteId 来源企微推送 有效期7200秒)"),
    XJ_WW_SITE_ID("xj_ww_site_id", "企业微信应用id"),
    XJ_WW_SITE_SECRET("xj_ww_site_secret", "企业微信应用秘钥"),
    XJ_WW_SITE_TICKET("xj_ww_site_ticket", "企业微信应用ticket"),
    XJ_WW_PROVIDER_TOKEN("xj_ww_provider_token_%s", "企业微信服务商accessToken,（参数: siteId 来源企微推送 有效期7200秒)"),

    DEIVCE_EXTERNAL_USERID_RATE("deivce_external_userid_rate_%s", "机器人获取会员外部账号id频率,参数为机器人唯一id,值为频率值"),

    DEIVCE_EXTERNAL_USERID_SEND_TIME("deivce_external_userid_send_time_%s", "机器人获取会员外部账号id发送时间,参数为机器人唯一id,值为上次发送时间"),

    //参数为corpid,值为authCorpId + "::" + 永久授权码
    CORP_APPLICATION_AUTH_CORPID("corp_application_auth_corpid_%s", "服务商授权应用授权企业id和永久授权码,参数为企业corpId"),

    ;

    private String key;
    private String desc;

    RedisCacheKeyEnum(String key, String desc) {
        this.key = key;
        this.desc = desc;
    }

    public String getKey() {
        return key;
    }

    public String getDesc() {
        return desc;
    }
}
